<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <title></title>
    <div>
        <h3>应用中的各种事件</h3>
        <p id="info" style="font-size:12px;"></p>
    </div>
    <script type="text/javascript">
        // 变量
        var info = document.getElementById('info');


        // 方法
        // 扩展API加载完毕后调用onPlusReady回调函数
        document.addEventListener("plusready", onPlusReady, false);
        function onPlusReady(){
            document.addEventListener("pause", onAppPause, false);
            document.addEventListener("resume", resumeCallback, false);
            document.addEventListener("netchange", onNetChange, false);
            document.addEventListener("newintent", onNetIntent, false);
            document.addEventListener("plusscrollbottom", onScrollToBottom, false);
            document.addEventListener("background", onAppBackground, false);     // 流应用
            document.addEventListener("foreground", onAppForeground, false);     // 流应用
            document.addEventListener("trimmemory", onAppTrimMemory, false);
            document.addEventListener("splashclosed", onSplashClosed, false);
        }

        // 应用从前台切换到后台
        function onAppPause(){
            console.log("Application 从前台切换到后台!");
        }

        // 应用从后台切换到前台
        function resumeCallback(){
            console.log("Application 从后台切换到前台!");
        }

        // 应用网络切换
        function onNetChange(){
            var nt = plus.networkinfo.getCurrentType();
            switch (nt){
                case plus.networkinfo.CONNECTION_ETHERNET:
                case plus.networkinfo.CONNECTION_WIFI:
                    alert("Switch to Wifi networks!");
                    break;
                case plus.networkinfo.CONNECTION_CELL2G:
                case plus.networkinfo.CONNECTION_CELL3G:
                case plus.networkinfo.CONNECTION_CELL4G:
                    alert("Switch to Cellular networks!");
                    break;
                default:
                    alert("Not networks!");
                    break;
            }
        }

        // 应用被第三方应用调起，产生新意图
        function onNetIntent(){
            // 获取新意图传入的参数
            var args = plus.runtime.arguments;
            // 处理意图事件
        }

        // webview 窗口滚动到底部事件
        function onScrollToBottom(){
            // 处理滚动到窗口底部事件
        }

        // 在流应用中，开启别的应用时，此应用自动的切换到后台
        function onAppBackground(){
            console.log("Application background!");
        }


        // 在多应用运行环境（如流应用）中，应用切换到后台运行后再次被启动时，切换到前台
        function onAppForeground(e){
            console.log("Application foreground!");
            var activeType = e.active;	// 获取激活到前台来源
        }

        // 应用需要清理内存事件
        function onAppTrimMemory(){
            console.log("Trim Memory!");
        }

        // 应用启动后关闭启动界面时触发，不管是应用自动关闭还是调用plus.navigator.closeSplashscreen方法，都会触发此事件。
        function onSplashClosed(){
            console.log("Splash closed!");
        }



        // ---------------webview页面错误事件处理--------------------------
        // H5 plus事件处理
        var ws=null;
        function plusReady(){
            // Android处理返回键
            plus.key.addEventListener('backbutton',function(){
                (history.length==1)&&ws.close();
                var c=setTimeout(function(){
                    ws.close();
                },1000);
                window.onbeforeunload=function(){
                    clearTimeout(c);
                }
                history.go(-2);
            },false);
            ws=plus.webview.currentWebview();
        }
        if(window.plus){
            plusReady();
        }else{
            document.addEventListener('plusready',plusReady,false);
        }
        document.addEventListener('touchstart',function(){
            return false;
        },true);
        // 禁止选择
        document.oncontextmenu=function(){
            return false;
        };
        // 获取错误信息
        document.addEventListener("error",function(e){
            info.innerText="请求的页面（"+e.href+"）无法打开";
        },false);

    </script>
</head>
<body>

</body>
</html>